<!DOCTYPE html>

<html lang="zh-Hans">
  <head>
    <meta charset="utf-8" />
    <meta name="author" content="rogepi" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script src="/vue.global.js"></script>
    <title>1-array-rendering</title>
  </head>

  <body>
    <div id="array-rendering">
      <!-- 用 v-for 指令基于一个数组来渲染一个列表。
          v-for 指令需要使用 item in items 形式的特殊语法，
          其中 items 是源数据数组，而 item 则是被迭代的数组元素的别名。 -->
      <ul>
        <li v-for="item in items" :key="item.message">{{ item.message }}</li>
      </ul>
      <!-- 在 v-for 块中，我们可以访问所有父作用域的 property。
        v-for 还支持一个可选的第二个参数，即当前项的索引 -->
      <ul>
        <li v-for="(item, index) in items">
          {{ parentMessage }} - {{ index }} - {{ item.message }}
        </li>
      </ul>
      <!-- 可以用 of 替代 in 作为分隔符，因为它更接近 JavaScript 迭代器的语法： -->
      <ul>
        <li v-for="item of items" :key="item.message">{{ item.message }}</li>
      </ul>
    </div>
    <script>
      Vue.createApp({
        data() {
          return {
            parentMessage: 'Parent',
            items: [{ message: 'Foo' }, { message: 'Bar' }],
          };
        },
      }).mount('#array-rendering');
    </script>
  </body>
</html>
